// 搭建express服务器，接收浏览器/postman上传的数据
const express = require('express')
// 接收上传的文件
const multer = require('multer')
// 创建上传组件，并指定保存文件的文件夹
const upload = multer({ dest: './upload' })

const bodyParser = require('body-parser')
// 注册body-parser中间件=========================================================
app.use(bodyParser.urlencoded({ extended: false }))

// parse application/json
app.use(bodyParser.json())



// 创建服务器程序
const app = express()

app.use(express.static('./web/'))

// 注册get路由，接收浏览器以get方式传来的、路径为/showlove的数据
// url?toname=lily&fromname=jack
app.get('/showlove', (req, res) => {
    // req.query自动地把浏览器url传递过来的数据转成一个对象
    // {toname:'lily',fromname:'jack'}
    console.log(req.query.toname)
    console.log(req.query.fromname)
    // 传递给浏览器信息
    res.send('启动成功！===get')
})

// 注册post路由，接收浏览器以post+urlencode格式传来的数据
// 请求报文体 toname=lily&fromname=jack
// 需要使用body.parser模块 req.body.toname   req.body.formname 
app.post('/add', (req, rep) => {
    console.log(req.body.toname)
    console.log(req.body.fromname)
    res.send('启动成功！===post')
})

// 接收浏览器上传的文件  post+formdata格式
// 利用upload.single('')告知服务器上传表单中的文件名（元素名）,最后保存到./upload
app.post('/upfile', upload.single('icon'), (req, res) => {
    // 获取上传的文件信息
    // 其中filename是上传后，服务器为它重新取的名字（hash值），防止浏览器多次上传名字相同的文件，后面文件覆盖前面文件
    console.log(req.file)

    // 获取随同文件一起上传的文本框的信息
    console.log(req.body)

})


// 启动服务器
app.listen(3747, (err) => {
    if (err == null) {
        console.log('启动成功')
    } else {
        console.log('启动失败' + err.message)
    }
})